A web session is a management structure used to maintain state data for a user across a variety of different Hypertext Transfer Protocol (HTTP) connections accessed through internet networking devices. Generally, implementing web session state management includes maintaining a client-side session identifier and a server-side session table. Client-side session identifiers, such as a cookie stored in a browser, are generally included by an HTTP client as part of each HTTP request and provide a server with a consistent identifier for a particular HTTP client across multiple connections. Server-side session tables are typically implemented as a hash table in server code that binds an HTTP client identifier to a set of information established by the client on a prior HTTP connection, and wherein the table may bind a browser user's current HTTP connection to a previous connection.
“Microservices” implementation approaches for service-oriented architectures (SOA) build flexible software systems (“services”) for stateless implementation on heterogeneous back-end (server-side) systems. Services in a microservice architecture are generally small granularity processes that are independently deployable and use lightweight, technology-agnostic protocols to communicate with each other over a network in order to fulfill a single, client-side data request or other goal. For example, within one session a user client may submit a single request for identity and job title information for a member of an organization, wherein the request is satisfied by a first back-end microservice that retrieves personal information from a human resources database, and by a different, second back-end microservice that retrieves job description data from an organizational hierarchy database that is organized by job title.
By distributing different server-side processing responsibilities into different smaller services, microservice architecture enhances cohesion and decreases coupling, making it easier to change and add functions and qualities to the system at any time. Microservice architecture enables the structure of an individual back-end service to be independently changed and developed by a service provider over time through continuous refactoring, without required corresponding time and resources to be expended on others of the microservices, thereby reducing the need to allocate resources to up-front design processes, and enabling early and continuous releasing of different software versions.